When an integrated circuit (e.g., a programmable logic device (PLD)) is powered-up and configured and depending upon the intended application, the contents of its embedded memory may be unknown (e.g., a do not care condition when used as random access memory). Alternatively, it may be desired that the contents of one or more of the blocks of memory be known or pre-defined (e.g., when used as read only memory) as the PLD begins to perform its user-defined functions (i.e., user mode or normal mode). If the contents of the memory must be known (pre-defined), the blocks of memory generally must be initialized (pre-loaded) with the desired information (e.g., configuration data via a configuration bitstream) during configuration of the PLD.
There are a number of methods for initializing embedded memory (e.g., blocks of memory) in an integrated circuit. For example for a PLD (e.g., a field programmable gate array or a complex programmable logic device), one method utilizes the data lines, address lines, and configuration logic circuitry, which are utilized to configure the fuses (e.g., static random access memory cells) of the programmable logic device, to also initialize the memory cells of the embedded memory. However, this method may slow down the configuration process of the programmable logic device and may waste bitstream storage space. As a result, there is a need for an improved method for initializing embedded memory.